'''
    作业：
    1. 通过本周的学习和自己查阅，你知道linux有哪些发行版本？
    3. 实现一个简易的计算器，效果如下：
    运行后提示让用户输入一个数字
       1. 提示输入操作符（+ - * /）
       2. 再次提示输入一个数字
       3. 打印计算结果
       4. 在不退出程序的前提下，可以允许用户继续输入新一组数据计算
'''
# 1. 通过本周的学习和自己查阅，你知道linux有哪些发行版本？
# 答：CentOS(云服务器常用)、红帽子（可视化系统预装）
#     网上查到的衍生系统有Debian、Gentoo、Ubuntu、Damn Vulnerable Linux、Fedora、Kali Linux、Arch Linux、OpenSuse

'''
    简易计算器分4部分
      1、合理退出机制，计算完毕后提示是否退出，选择y则退出，其他方式则继续计算
      2、数字输入，输入内容需要满足能转化为数字，否则提示错误重新输入
      3、符号输入，必须是+-*/这个范围，否则提示错误重新输入
      4、输入全部正确则输出整个计算式的结果并提示是否退出程序
'''


def num_input():
    num = input('请输入一个数字：')
    try:
        num = float(num)
    except():
        print('输入内容并非数字，请重新输入数字：')
        num = num_input()
    return num


# 输入一个符号，返回一个数字代表计算符+-*/对应0123
def cal_input():
    c = input('请输入计算的符号:')
    index = None
    if len(c) == 1 and c in '+-*/':
        index = '+-*/'.index(c)
    else:
        print('输入错误，请重新输入计算符号(+-*/)：')
        index = cal_input()
    return index


def cal():
    num1 = num_input()
    c = cal_input()
    num2 = num_input()
    c_str = '+-*/'[c]
    ret = None
    if c == 0:
        ret = num1 + num2
    elif c == 1:
        ret = num1 - num2
    elif c == 2:
        ret = num1 * num2
    else:
        ret = num1 / num2
    print(f'{num1} {c_str} {num2} = {ret}')


run = True
while run:
    cal()
    r = input('输入Y退出，其他则继续使用')
    if r.lower() == "y":
        run = False
